<!DOCTYPE html>
<html>
<head>
  <!-- 页面 meta -->
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>传智健康</title>
  <meta name="description" content="传智健康">
  <meta name="keywords" content="传智健康">
  <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
  <!-- 引入样式 -->
  <link rel="stylesheet" href="../css/style.css">
  <!-- 引入 ECharts 文件 -->
  <script src="../plugins/echarts/echarts.js"></script>
</head>
<body class="hold-transition">
<div id="app">
  <!-- 头部 -->
  <div class="content-header">
    <h1>统计分析
      <small>套餐预约占比</small>
    </h1>
    <!-- 面包屑（显示当前页面的路径，快速返回之前的任意页面。） -->
    <el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
      <el-breadcrumb-item>统计分析</el-breadcrumb-item>
      <el-breadcrumb-item>套餐预约占比</el-breadcrumb-item>
    </el-breadcrumb>
  </div>
  <!-- 主体 -->
  <div class="app-container">
    <div class="box">
      <!-- 为 ECharts 准备一个具备大小（宽高）的 DOM -->
      <div id="chart" style="width: 100%;height: 900px;"></div>
    </div>
  </div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script type="text/javascript">
    // 基于准备好的 DOM，初始化 Echarts 实例
    var myChart = echarts.init(document.getElementById('chart'));
    //  发送 ajax 请求获取动态数据
    axios.get("/report/getSetmealReport.do").then((res) => {
        //  指定图表的配置项和数据
        var option = {
            title: {
                text: '套餐预约占比',
                subtext: '统计分析环形饼图',
                x: 'center'
            },
            tooltip: {  //  提示框组件
                //  触发类型：'axis'（坐标轴触发）| 'item'（数据项触发），在饼图中为 item
                trigger: 'item',
                //  提示内容格式：系列名称（series.name） + 数据项名称（如套餐名） + 数值 + 百分比
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            legend: {
                //  垂直排列
                orient: 'vertical',
                //  靠左对齐
                left: 'left',
                //  动态传入套餐名称数组（需确保是一个字符串数组，如：["入职无忧体检套餐（男女通用）", "孕前检查套餐（女）-精英版", "珍爱高端升级肿瘤 12 项筛查（男女单人）", "粉红珍爱（女）升级 TM12 项筛查体检套餐", "阳光爸妈升级肿瘤 12 项筛查（男女单人）体检套餐"]）
                data: res.data.data.setmealNames
            },
            series: [
                {
                    //  系列名称（与 tooltip{a} 对应）
                    name: '套餐预约占比',
                    //  图表类型：环形饼图
                    type: 'pie',
                    //  缩放效果
                    // animationType: 'scale',
                    //  弹性效果
                    // animationEasing: 'elasticOut',
                    //  饼图半径（相对于容器）
                    // radius: '55%',
                    //  环形饼图内半径 40%，外半径 70%
                    radius: ['40%', '70%'],
                    //  饼图中心位置（水平 50%，垂直 60%）
                    center: ['50%', '60%'],
                    //  数据：需格式如 [{ "name": "入职无忧体检套餐（男女通用）","value": 3},{...} ...]
                    data: res.data.data.setmealCount,
                    //  区块样式
                    itemStyle: {
                        //  高亮样式（悬停时）
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        };
        //  使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);

        function debounce(fn, delay) {
            let timer;
            return function () {
                clearTimeout(timer);
                timer = setTimeout(() => fn.apply(this, arguments), delay);
            };
        }

        window.addEventListener('resize', debounce(function () {
            myChart.resize();
        }, 200));
    });
</script>
</html>
